package chapter03.Demo2;

/**
 * 1. 封装
 * 2. 构造方法
 */
class Student {
    String id;
    String name;
    private int age;
    private int gender;// 0男 1女
    // 构造函数 设置学生学号
    public Student(String ID){// 方法名称和类名一致 叫做构造方法
        id = ID;
    }
    // 利用重载技术 构造方法重载
    public  Student(){

    }

    void read() {
        System.out.println("大家好，我是" + name + ".我在看书");
    }

    /**
     * 成员属性的设置和获取的封装方法
     * 有利于避免代码错误
     * 有利于数据检验
     * 利用封装实现复杂功能 方便其他开发人员和自己重复使用代码
     */
    void setAge(int a) {//设置年龄
        if (a < 0 || a > 150) {
            System.out.println("你输入的年龄有误");
        } else {
            age = a;
        }
    }

    int getAge() {// 获取年龄
        return age;
    }

    // 转化性别汉字到数字
    void setGender(String g) {
        if (g.equals("男")) {//String类型判断字符相等固定格式
            gender = 0;
        } else {
            System.out.println("性别有误");
        }
    }
    String getGender() {
        if (gender == 0) {
            return "男";
            }else {
            return "女";
        }
    }
}


    public class demo2 {
        public static void main(String[] args) {
            Student stu1 = new Student("20233010101");
            System.out.println(stu1.id);
            stu1.name = "猪小明";
//        stu1.age = 10; // 错误原因 私有属性无法直接修改
            stu1.setAge(9999);//设置stu1年龄
            System.out.println(stu1.getAge());//获取年龄
            stu1.setGender("女");
            System.out.println(stu1.getGender());
            Student stu2 = new Student();
        }
    }

